﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//
//namespace Benefit.Models.Sys
//{
//    /// <summary>
//    /// 访问权限
//    /// </summary>
//    public class VisitPrower
//    {
//        public static bool HasOperatorPrower(int visiterID, int operatorId, DB.DBManager db)
//        {
//            Common.Web.Cookie cookie = new Common.Web.Cookie();
//            bool hasPrower = false;
//            //  string s = "访问者ID：" + visiterID + " 被访问者ID：" + operatorId + " 访问者类型：" + cookie.GetCookie("LoginUserType");
//            //  s.Debug();
//            //   string usertype = cookie.GetCookie("usertype");
//            int usertype = Convert.ToInt32(cookie.GetCookie("LoginUserType"));
//            List<Common.Module.Permissions.Model.T_MasterGroup> visiterGroups = new List<Common.Module.Permissions.Model.T_MasterGroup>();
//            //if (!string.IsNullOrEmpty(usertype))
//            //{
//            //    visiterGroups = db.MasterGroup.Where(a => a.MasterId == visiterID).Where(a => a.UserType == 2).ToList();
//            //}
//            //else
//            //{
//            visiterGroups = db.MasterGroup.Where(a => a.MasterId == visiterID).Where(a => a.UserType == usertype).ToList();
//            // }

//            foreach (Common.Module.Permissions.Model.T_MasterGroup mg in visiterGroups)
//            {
//                int groupId = Convert.ToInt32(mg.GroupId);
//                var actionlist = db.ActionGroup.Where(a => a.GroupId == groupId).ToList();
//                foreach (Common.Module.Permissions.Model.T_ActionGroup a in actionlist)
//                {
//                    if (a.ActionId.Equals("4") && visiterID == operatorId)//查看自身交易情况
//                    {
//                        hasPrower = true;
//                        break;
//                    }

//                    if (a.ActionId.Equals("1") || a.ActionId.Equals("3"))//判断是否具有查看全部交易员交易情况和公司全部交易员交易情况
//                    {
//                        hasPrower = true;
//                        break;
//                    }

//                    //根据被查看的交易员编号是否被配置入查看权限
//                    if (a.ActionId.Equals("o " + operatorId))
//                    {
//                        hasPrower = true;
//                        break;
//                    }
//                    //根据是否具有被查看交易员所在小组的查看权限
//                    var operatorGroups = db.GroupOperators.Where(af => af.OperatorId == operatorId).ToList();
//                    foreach (Sys.GroupOperators g in operatorGroups)
//                    {
//                        if (("g " + g.GroupId).Equals(a.ActionId))
//                        {
//                            hasPrower = true;
//                            break;
//                        }
//                    }
//                }
//                if (hasPrower)
//                {
//                    break;
//                }
//            }
//            return hasPrower;
//        }

//        public static bool OperatorHasGroupPrower(int visiterID, int groupId, DB.DBManager db)
//        {
//            bool hasPrower = false;
//            Common.Web.Cookie cookie = new Common.Web.Cookie();
//            int usertype = Convert.ToInt32(cookie.GetCookie("LoginUserType"));
//            List<Common.Module.Permissions.Model.T_MasterGroup> visiterGroups = new List<Common.Module.Permissions.Model.T_MasterGroup>();

//            visiterGroups = db.MasterGroup.Where(a => a.MasterId == visiterID).Where(a => a.UserType == usertype).ToList();
//            foreach (Common.Module.Permissions.Model.T_MasterGroup mg in visiterGroups)
//            {
//                int _groupId = Convert.ToInt32(mg.GroupId);
//                var actionlist = db.ActionGroup.Where(a => a.GroupId == _groupId).ToList();
//                foreach (Common.Module.Permissions.Model.T_ActionGroup a in actionlist)
//                {
//                    if (a.ActionId.Equals("2") || a.ActionId.Equals("3"))//判断是否具有查看全部小组交易情况和公司全部交易员交易情况
//                    {
//                        hasPrower = true;
//                        break;
//                    }


//                    if (("g " + groupId).Equals(a.ActionId))   //根据是否具有被查看交易员所在小组的查看权限
//                    {
//                        hasPrower = true;
//                        break;
//                    }
//                }
//                if (hasPrower)
//                {
//                    break;
//                }
//            }
//            return hasPrower;
//        }

//        public static bool HasGroupPrower(int visiterID, int groupId, DB.DBManager db)
//        {
//            bool hasPrower = false;
//            Common.Web.Cookie cookie = new Common.Web.Cookie();
//            int usertype = Convert.ToInt32(cookie.GetCookie("LoginUserType"));
//            List<Common.Module.Permissions.Model.T_MasterGroup> visiterGroups = new List<Common.Module.Permissions.Model.T_MasterGroup>();
//            //if (!string.IsNullOrEmpty(usertype))//管理员登陆
//            //{
//            visiterGroups = db.MasterGroup.Where(a => a.MasterId == visiterID).Where(a => a.UserType == usertype).ToList();
//            //}
//            //else
//            //{
//            //    visiterGroups = db.MasterGroup.Where(a => a.MasterId == visiterID).Where(a => a.UserType == 1).ToList();
//            //}
//            foreach (Common.Module.Permissions.Model.T_MasterGroup mg in visiterGroups)
//            {
//                int _groupId = Convert.ToInt32(mg.GroupId);
//                var actionlist = db.ActionGroup.Where(a => a.GroupId == _groupId).ToList();
//                foreach (Common.Module.Permissions.Model.T_ActionGroup a in actionlist)
//                {
//                    if (a.ActionId.Equals("2") || a.ActionId.Equals("3"))//判断是否具有查看全部小组交易情况和公司全部交易员交易情况
//                    {
//                        hasPrower = true;
//                        break;
//                    }


//                    if (("g " + groupId).Equals(a.ActionId))   //根据是否具有被查看交易员所在小组的查看权限
//                    {
//                        hasPrower = true;
//                        break;
//                    }
//                }
//                if (hasPrower)
//                {
//                    break;
//                }
//            }
//            return hasPrower;
//        }

//        public static bool HasCompanyPrower(int visiterID, DB.DBManager db)
//        {
//            bool hasPrower = false;
//            Common.Web.Cookie cookie = new Common.Web.Cookie();
//            int usertype = Convert.ToInt32(cookie.GetCookie("LoginUserType"));
//            List<Common.Module.Permissions.Model.T_MasterGroup> visiterGroups = new List<Common.Module.Permissions.Model.T_MasterGroup>();
//            //if (!string.IsNullOrEmpty(usertype))
//            //{
//            visiterGroups = db.MasterGroup.Where(a => a.MasterId == visiterID).Where(a => a.UserType == usertype).ToList();
//            //}
//            //else
//            //{
//            //    visiterGroups = db.MasterGroup.Where(a => a.MasterId == visiterID).Where(a => a.UserType == 1).ToList();
//            //}
//            foreach (Common.Module.Permissions.Model.T_MasterGroup mg in visiterGroups)
//            {
//                int _groupId = Convert.ToInt32(mg.GroupId);
//                var actionlist = db.ActionGroup.Where(a => a.GroupId == _groupId).ToList();
//                foreach (Common.Module.Permissions.Model.T_ActionGroup a in actionlist)
//                {
//                    if (a.ActionId.Equals("3"))//判断是否具有查看全部小组交易情况和公司全部交易员交易情况
//                    {
//                        hasPrower = true;
//                        break;
//                    }
//                }
//                if (hasPrower)
//                {
//                    break;
//                }
//            }
//            return hasPrower;
//        }

//        public static bool HasAdminPrower(int visiterID, DB.DBManager db)
//        {
//            bool hasPrower = false;
//            Common.Web.Cookie cookie = new Common.Web.Cookie();
//            string usertype = cookie.GetCookie("LoginUserType");
//            if (!string.IsNullOrEmpty(usertype) && usertype.Equals("2"))
//            {
//                var tradeHistorys = db.TradeHistorys.Count();
//                if (tradeHistorys == 0)
//                {
//                    hasPrower = true;
//                }
//                else
//                {
//                    var visiterGroups = db.MasterGroup.Where(a => a.MasterId == visiterID).Where(a => a.UserType == 2).ToList();
//                    foreach (Common.Module.Permissions.Model.T_MasterGroup mg in visiterGroups)
//                    {
//                        int _groupId = Convert.ToInt32(mg.GroupId);
//                        var actionlist = db.ActionGroup.Where(a => a.GroupId == _groupId).ToList();
//                        foreach (Common.Module.Permissions.Model.T_ActionGroup a in actionlist)
//                        {
//                            if (a.ActionId.Equals("5"))//判断是否具有后台管理权限
//                            {
//                                hasPrower = true;
//                                break;
//                            }
//                        }
//                        if (hasPrower)
//                        {
//                            break;
//                        }
//                    }
//                }
//            }
//            return hasPrower;
//        }
//    }
//}
